1. Field of the Invention
The present invention relates generally to the electronic representation of data in a computer, and in particular, to a method, apparatus, and article of manufacture for accessing, editing, and persisting arbitrary large datasets of heterogeneous assets.
2. Description of the Related Art
Graphic and non-graphic computer data may be represented in a variety of ways and used in a variety of different programs/applications and in different contexts. Some computer assets/objects may have common attributes or properties regardless of whether such assets/objects are used in the same application, different applications, or different contexts. However, rather than having a single universal definition of the asset/object that is represented throughout applications and contexts, the prior art often creates separate and independent representations of each asset/object for every application and every context (e.g., within a single application). Such prior art techniques can consume a significant amount of memory/disk space and require excessive processing time for its manipulation and use. Alternative prior art methodologies create a large aggregated version of all assets/objects at a single time. However, such methodologies require the creator to imagine all versions of the assets/objects in advance, are not flexible, and utilize significant memory and processing. These problems may be better understood with a detailed explanation of prior art data representations and use.
Computer applications often have proprietary data formats for different applications. For example, one proprietary format may cover two-dimensional (2D) graphics, another format covers three-dimensional (3D) graphics, and another format covers design metadata. Each format may cover data that is similar but has a slightly different appearance depending on the application field and context around which the data is interpreted. For example, a 2D circle and 3D circle may be represented by two different versions of the same entity—one in 2D and one in 3D. Such independent versions are too heavy and complex to maintain. Prior art techniques create a large aggregated version of the data in advance. Thus, with the circle example, the prior art would create a large aggregation of 2D circles and 3D circles, 2D circles with a weight, and 3D circles with a weight, 2D circles with color, 3D circles with color, etc. Such an aggregation is exponentially complex and consumes substantial memory/disk space/processing.
An example of a prior art technique is the FBX™ application programming interface (API) available from the assignee of the present invention. The FBX™ API is a platform-independent 3D authorizing and interchange format supported by various software developers. However, while the format may be flexible, the FBX™ API targets the exchange of 3D scenes for the entertainment and game industry (i.e., it is game centric and does not allow extension to 2D or computer-aided design assets). The FBX™ API also fails to maintain an open data-format and relies on C++ APIs for coherency.
Another prior art data format is the COLLADA™ application available from SONY™. The COLLADA™ application is a collaborative design activity for establishing an interchange file format for interactive 3D applications. The COLLADA™ application defines an open standard XML schema for exchanging digital assets among various graphics software applications that might otherwise store their assets in incompatible formats. However, the COLLADA™ application is a generic application that lacks strong data typing and is therefore unable to provide fine grained data access. Further, the COLLADA™ application lacks any stable C++ reference implementation thereby increasing the difficulty of its use.
Alternative prior art exchange formats are focused on 3D assets and lack the ability to describe other applicative knowledge.